Use this migration guide to update Kanzi applications from Kanzi 3.4 to Kanzi 3.5.
The default 3D text material now takes into account the Blend Intensity property. Check the Text Block 3D nodes using the default 3D text material and modify the content accordingly to get the desired rendering result.
Property values with class priority are no longer inherited.
Kanzi 3.5 introduces changes to the animation system which require you to update projects where you use keyframe animations.
Replace the property driven animations in projects created with earlier versions of Kanzi with the Property Driven Animation Player. See Creating property driven animations.
The Background Animation property is no longer available. Use the Animation Player to play keyframe animations you previously played using the Background Animation property. See Playing keyframe animations.
Play Animation action is deprecated and will be removed in the next version of Kanzi. Change your Kanzi Studio projects to use the Animation Player and the animation playback actions to control your animations. See Playing keyframe animations.
Target keyframes are no longer available. Use the Property Target Interpolator to animate an object towards a dynamic target value. See Interpolating property values.
Keyframe classes use unique_ptr instead of shared_ptr.
In earlier Kanzi versions nodes references all resource through resource ID properties. Resource ID is a string that was mapped by the node to an actual resource. Resource ID could contain a URL string or an ID string that was mapped to an URL through a resource dictionary. In Kanzi 3.5 nodes reference resources through properties that contain direct pointers. This changes:
In Kanzi 3.4 when you wanted a property to reference a resource, you used resource ID data type to declare the property type. For example,
PropertyType<ReseourceID>
In Kanzi 3.5 use
PropertyType<ResourceSharedPtr>
These properties accept and return resource pointers directly. For example, to set a texture to an Image node use
Image::setProperty(Image::TextureProperty, textureResource).
Acquire resource from resource manager and set it as a property value.
Changed the way you set up the mapping of a resource ID to a value in a resource dictionary.
For example, in earlier versions of Kanzi, to set the Image property value to a resource ID, you used
imageNode->setProperty(Image2D::ImageProperty, resourceId);
In Kanzi 3.5, to set the Image property value to a resource ID, use
BindingSharedPtr binding = Binding::create(domain);
binding->setSourceResource(resourceId);
binding->setTargetDynamicObjectProperty(".", Image2D::ImageProperty, PropertyFieldWhole);
imageNode->addBinding(binding);
The coordinates of Scroll View 2D and Scroll View 3D nodes have changed.
kzMakeFixedString for their name.ResourceDictionary::acquireResource() now requires correctly formatted URL.Node::acquireResource() now requires ResourceID.kzuMatrix4x4 changed to Matrix4x4.